package com.frejoys.common.config;

import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Data
@Component
public class ValueConfig {


    @Value("${spring.profiles.active}")
    private String activeProfiles;

    /******************* app *******************/

    // app aes 加密key
    @Value("${frejoys.app.aes-key}")
    private String appAesKey;

    // app aes 加密向量
    @Value("${frejoys.app.aes-iv}")
    private String appAesIv;

    // app接口请求头签名secret
    @Value("${frejoys.app.header-secret}")
    private String appHeaderSecret;

    // app请求Jwt secret
    @Value("${frejoys.app.jwt-secret}")
    private String appJwtSecret;

    // app请求Jwt secret 超时时间
    @Value("${frejoys.app.jwt-exp}")
    private Integer appJwtExp;

    // app Snowflake 终端id
    @Value("${frejoys.app.snowflake-worker-id}")
    private long appSnowflakeWorkerId;

    // app Snowflake 数据中心id
    @Value("${frejoys.app.snowflake-datacenter-id}")
    private long appSnowflakeDatacenterId;

    // app Snowflake 时间戳，毫秒
    @Value("${frejoys.app.snowflake-timestamp}")
    private long appSnowflakeTimestamp;

    // app接口开放接口请求头签名secret
    @Value("${frejoys.app.open.header-secret}")
    private String appOpenHeaderSecret;


    /******************* admin *******************/

    // admin aes 加密key
    @Value("${frejoys.admin.aes-key}")
    private String adminAesKey;

    // admin aes 加密向量
    @Value("${frejoys.admin.aes-iv}")
    private String adminAesIv;

    // admin接口请求头签名secret
    @Value("${frejoys.admin.header-secret}")
    private String adminHeaderSecret;

    // admin请求Jwt secret
    @Value("${frejoys.admin.jwt-secret}")
    private String adminJwtSecret;

    // admin请求Jwt secret 超时时间
    @Value("${frejoys.admin.jwt-exp}")
    private Integer adminJwtExp;

    // admin Snowflake 终端id
    @Value("${frejoys.admin.snowflake-worker-id}")
    private long adminSnowflakeWorkerId;

    // admin Snowflake 数据中心id
    @Value("${frejoys.admin.snowflake-datacenter-id}")
    private long adminSnowflakeDatacenterId;

    // admin Snowflake 时间戳，毫秒
    @Value("${frejoys.admin.snowflake-timestamp}")
    private long adminSnowflakeTimestamp;


    /******************* store *******************/

    // store aes 加密key
    @Value("${frejoys.store.aes-key}")
    private String storeAesKey;

    // store aes 加密向量
    @Value("${frejoys.store.aes-iv}")
    private String storeAesIv;

    // store接口请求头签名secret
    @Value("${frejoys.store.header-secret}")
    private String storeHeaderSecret;

    // store请求Jwt secret
    @Value("${frejoys.store.jwt-secret}")
    private String storeJwtSecret;

    // store请求Jwt secret 超时时间
    @Value("${frejoys.store.jwt-exp}")
    private Integer storeJwtExp;

    // store Snowflake 终端id
    @Value("${frejoys.store.snowflake-worker-id}")
    private long storeSnowflakeWorkerId;

    // store Snowflake 数据中心id
    @Value("${frejoys.store.snowflake-datacenter-id}")
    private long storeSnowflakeDatacenterId;

    // store Snowflake 时间戳，毫秒
    @Value("${frejoys.store.snowflake-timestamp}")
    private long storeSnowflakeTimestamp;


    // h5支付页
    @Value("${frejoys.store-code-url}")
    private String storeCodeUrl;

    // 用户端域名
    @Value("${frejoys.app-url}")
    private String appUrl;

    // 商家端域名
    @Value("${frejoys.store-url}")
    private String storeUrl;

    // 平台端域名
    @Value("${frejoys.admin-url}")
    private String adminUrl;


    // 传文件回调验证秘钥
    @Value("${frejoys.upload.jwt-callback-secret}")
    private String uploadJwtCallbackSecret;

    // 上传文件回调验证秘钥 超时时间
    @Value("${frejoys.upload.jwt-callback-exp}")
    private Integer uploadJwtCallbackExp;

    // redis地址
    @Value("${spring.data.redis.host}")
    private String redisHost;

    // redis端口
    @Value("${spring.data.redis.port}")
    private String redisPort;

    // redis密码
    @Value("${spring.data.redis.password}")
    private String redisPassword;

    // redis数据库
    @Value("${spring.data.redis.database}")
    private Integer redisDatabase;

    /// 微信支付


    ///微信支付
    // //mchId商户号
    // @Value("${wechat.pay.mch-id}")
    // private String mchId;
    //
    // //mchId商户秘钥
    // @Value("${wechat.pay.mch-key}")
    // private String mchKey;
    //
    // @Value("${wechat.pay.apiV3-key}")
    // private String apiV3key;
    //
    // //证书路径
    // @Value("${wechat.pay.key-path}")
    // private String keyPath;
    //
    // //私有证书pom
    // @Value("${wechat.pay.private-cert-path}")
    // private String privateCertPath;
    //
    // //私有秘钥pom路径
    // @Value("${wechat.pay.private-key-path}")
    // private String privateKeyPath;
    //
    // //终端IP
    // @Value("${wechat.pay.spbill-create-ip}")
    // private String spbillCreateIp;
    //
    // //支付回调通知地址
    // @Value("${wechat.pay.notify-url}")
    // private String notifyUrl;
    //
    // //退款回调通知地址
    // @Value("${wechat.pay.refund-notify-url}")
    // private String refundNotifyUrl;
    //
    // //支付回调通知地址2
    // @Value("${wechat.pay.notify-url-two}")
    // private String notifyUrlTwo;
    //
    // //退款回调通知地址2
    // @Value("${wechat.pay.refund-notify-url-two}")
    // private String refundNotifyUrlTwo;
    //
    // //交易类型
    // @Value("${wechat.pay.trade-type}")
    // private String tradeType;
    //
    // //商品描述
    // @Value("${wechat.pay.body}")
    // private String body;
    //app


    /// 微信登录
    @Value("${wechat.miniapp.configs[0].appid}")
    private String appAppid;

    @Value("${wechat.miniapp.configs[0].secret}")
    private String appAppSecret;
    //business
    @Value("${wechat.miniapp.configs[1].appid}")
    private String storeAppid;

    @Value("${wechat.miniapp.configs[1].secret}")
    private String storeAppSecret;

    //公众号
    @Value("${wechat.miniapp.configs[2].appid}")
    private String officialAppid;

    @Value("${wechat.miniapp.configs[2].secret}")
    private String officialAppSecret;



    /// 阿里云

    // 阿里云短信
    // AccessKeyId
    @Value("${ali.sms.access-key-id}")
    private String aliSmsAccessKeyId;

    // AccessKeySecret
    @Value("${ali.sms.access-key-secret}")
    private String aliSmsAccessKeySecret;

    // Endpoint
    @Value("${ali.sms.endpoint}")
    private String aliSmsEndpoint;

    // sms签名名称
    @Value("${ali.sms.sign-name}")
    private String aliSmsSignName;

    // sms模版Code
    @Value("${ali.sms.template-code}")
    private String aliSmsTemplateCode;

    // 阿里云存储oss
    // oss存储账号Endpoint
    @Value("${ali.oss.bucket-upload.endpoint}")
    private String aliOssBucketUploadEndpoint;

    // oss存储账号AccessKeyID
    @Value("${ali.oss.bucket-upload.access-key-id}")
    private String aliOssBucketUploadAccessKeyID;

    // oss存储账号AccessKeySecret
    @Value("${ali.oss.bucket-upload.access-key-secret}")
    private String aliOssBucketUploadAccessKeySecret;

    // oss存储账号Bucket
    @Value("${ali.oss.bucket-upload.bucket}")
    private String aliOssBucketUploadBucket;

    // oss存储账号http前缀
    @Value("${ali.oss.bucket-upload.http}")
    private String aliOssBucketUploadHttp;

    // oss存储账号Url
    @Value("${ali.oss.bucket-upload.url}")
    private String aliOssBucketUploadUrl;

    // oss回调地址
    @Value("${ali.oss.bucket-upload.notify-url}")
    private String aliOssBucketUploadNotifyUrl;

    // oss存储账号Path
    @Value("${ali.oss.bucket-upload.path}")
    private String aliOssBucketUploadPath;

    // oss存储访问文件失效时长，毫秒
    @Value("${ali.oss.bucket-upload.access-expire}")
    private long aliOssBucketAccessExpire;

    // 上传大小限制MB
    @Value("${ali.oss.bucket-upload.size}")
    private Integer aliOssBucketUploadSize;


    // 花卷云app key
    @Value("${huajuanyun.app_key}")
    private String huajuanyunAppKey;

    // 花卷云app secret
    @Value("${huajuanyun.app_secret}")
    private String huajuanyunAppSecret;

    // 花卷云app secret
    @Value("${huajuanyun.token}")
    private String huajuanyunToken;

    // 花卷云接口域名
    @Value("${huajuanyun.api_url}")
    private String huajuanyunApiUrl;

}
